Usage
#include "stdlib/napi/argv_double.h"
stdlib_napi_argv_double( env, value, *out, *message, *err )
Converts a Node-API value to a double-precision floating-point number.
#include "stdlib/napi/argv_double.h"
#include <node_api.h>
static napi_value addon( napi_env env, napi_callback_info info ) {
napi_value value;
double out;
napi_value err;
napi_status status = stdlib_napi_argv_double( env, value, &out, "Must be a number.", &err );
assert( status == napi_ok );
if ( err != NULL ) {
assert( napi_throw( env, err ) == napi_ok );
return NULL;
}
}
The function accepts the following arguments:
- env:
[in] napi_env
environment under which the function is invoked. - value:
[in] napi_value
Node-API value. - out:
[out] double*
destination for storing output value. - message:
[in] char*
error message. - err:
[out] napi_value*
pointer for storing a JavaScript error. If not provided a number, the function sets err
with a JavaScript error; otherwise, err
is set to NULL
.
napi_status stdlib_napi_argv_double( const napi_env env, const napi_value value, double *out, const char *message, napi_value *err );
The function returns a napi_status
status code indicating success or failure (returns napi_ok
if success).
STDLIB_NAPI_ARGV_DOUBLE( env, name, argv, index )
Macro for converting an add-on callback argument to a double-precision floating-point number.
#include "stdlib/napi/argv_double.h"
#include "stdlib/napi/argv.h"
#include <node_api.h>
static double fcn( const double v ) {
return v;
}
static napi_value addon( napi_env env, napi_callback_info info ) {
STDLIB_NAPI_ARGV( env, info, argv, argc, 1 );
STDLIB_NAPI_ARGV_DOUBLE( env, value, argv, 0 );
double out = fcn( value );
}
The macro expects the following arguments:
- env: environment under which the callback is invoked.
- name: output variable name.
- argv: name of the variable containing add-on callback arguments.
- index: argument index.